你可能還沒熟悉 git 怎麼用,沒關係接著才是重頭戲,先來一窺版本管理的最終目的吧。由於操作型的技術文章已經很多,本篇筆記將聚焦 「如何善用遠端儲存庫」。
練習版本控制絕非只是為了自己能管理好程式碼,而是與團隊同步專案進度、或與人分享最新版本的作品、也可能是與技術圈共享開源專案。當逐漸熟練在本地環境管理程式碼後,下一步就是要練習使用遠端儲存庫來共享。而在我學習的教材中,使用的是 GitHub 服務。
在前一篇,我們提到促進團隊協作也是版本控制的好處之一,透過 GitHub 之類的第三方服務,就能讓團隊建立一個遠端儲存庫,在不影響現有版本穩定運作的前提下,同時進行優化、更新、修錯。
當一個專案被開源,這意味着任何人都可以出於任何目的查看,使用,修改和分發你的專案。這些權限通過 開源許可 強制實施。它降低了事物被採納的障礙,允許想法迅速傳播。
from Open Source Guides
GitHub 剛好就是充滿 OpenSource 專案的開源社群。透過開源,發布者得以傳遞美好價值,而共同貢獻的開發者們也能累積戰績、嶄頭露角。
另外,GitHub 也是工程師求職或接案工作者開發客戶的門票之一。上面紮實的作品集,也可以說是開發者的技術履歷。
就像航機出發前,機長必定會先確陣航線、方向等無誤後,才會起飛前往目的地。
同前篇所述,在正式建立遠端儲存庫之前,以下事前準備能協助我們事半功倍。
既然他是一個重要的技術履歷,一個令人印象深刻的門面就顯得重要。初步觀察到有兩類 Profile(只是作者主觀分類):
from Most active GitHub users #1
from Build a Stunning README For Your GitHub Profile & WaylonWalker GitHub
from GitHub Profile README with View Counter &
Ayushi Rawat GitHub
另一件我覺得重要的事,就是一個清晰的專案分類架構。因為 GitHub 上可能同時存在,個人作品、開源專案、共享專案等。透過良好的命名及子儲存庫,可以讓專案顯得有條有理。
像我把學習過程中的專案獨立到一個 repo ,讓人一眼可看出哪些是我的獨立作品、哪些是學習期間的作業。
from 作者的 GitHub
那究竟子儲存庫 submodule 怎麼使用呢?(其實我也只略知一二)
目前所知可在主專案資料夾下輸入:
git submodule add <main_repository url> <submodule name>
就能夠將該 sub_repository 添加到當前的 main_repository。
細節可以參考這兩篇:
或查看官方文件(研究了很久,但蠻難理解哈哈):Git Tools - Submodules
說了麼多,只要完成相關事前準備,就可以把 local repository 推上 GitHub 了嗎?
在撈叨兩點我自己遇到的小狀況:
在上傳前,請先確認本次的所有更動及 commits 都已經更新完畢,再整批一起推上 GitHub ,可以避免同步後想再更動,而產生額外分支(branch)。
若在本地修改 commit 的過程中,避免 reset 到遠端最新版之前的版本,同樣能避免產生分支。
關於本系列更多內容及導讀,請閱讀作者於 Medium 個人專欄 【無限賽局玩家 Infinite Gamer | Publication – 】 上的文章 《用 JavaScript 打造全端產品的入門學習筆記》系列指南。